package com.hb.software.salary.impl;

import com.hb.software.entity.salary.SalaryMessage;
import com.hb.software.salary.SalaryMessageService;
import com.hb.software.salary.dao.SalaryMessageDao;
import com.hb.software.service.impl.BaseServiceImpl;
import org.apache.poi.hssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.List;
import java.util.Map;

//@Service("salaryManager")
@Service("salaryService")
@Transactional
public class SalaryMessageServiceImpl extends BaseServiceImpl<SalaryMessage, Long> implements SalaryMessageService {

    //    @Autowired
    private SalaryMessageDao salaryMessageDao;

    @Autowired(required = false)
    public void setSalaryMessageDao(SalaryMessageDao salaryMessageDao){
        this.salaryMessageDao = salaryMessageDao;
        this.dao=this.salaryMessageDao;
    }

    @Override
    public List findByName(String name) {
        return salaryMessageDao.findByName(name);
    }

    @Override
    public List<SalaryMessage> findSalaryAll() {
        return salaryMessageDao.findAll();
    }

    @Override
    public Integer batchDelete(List<Long> ids) {
        return salaryMessageDao.batchDelete(ids);
    }

    @Override
    public String createExcel(List<SalaryMessage> list, String path) {
//
//        // 创建一个Excel文件
//        HSSFWorkbook workbook = new HSSFWorkbook();
//        // 创建一个工作表
//        HSSFSheet sheet = workbook.createSheet("学生表一");
//        // 添加表头行
//        HSSFRow hssfRow = sheet.createRow(0);
//        // 设置单元格格式居中
//        HSSFCellStyle cellStyle = workbook.createCellStyle();
////    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//
//        // 添加表头内容
//        HSSFCell headCell = hssfRow.createCell(0);
//        headCell.setCellValue("编号");
//        headCell.setCellStyle(cellStyle);
//
//        headCell = hssfRow.createCell(1);
//        headCell.setCellValue("姓名");
//        headCell.setCellStyle(cellStyle);
//
//        headCell = hssfRow.createCell(2);
//        headCell.setCellValue("基础工资");
//        headCell.setCellStyle(cellStyle);
//
//        headCell = hssfRow.createCell(3);
//        headCell.setCellValue("实际工资");
//        headCell.setCellStyle(cellStyle);
//
//        headCell = hssfRow.createCell(4);
//        headCell.setCellValue("发薪日");
//        headCell.setCellStyle(cellStyle);
//
//        headCell = hssfRow.createCell(5);
//        headCell.setCellValue("薪资加成");
//        headCell.setCellStyle(cellStyle);
//
//        // 添加数据内容
//        for (int i = 0; i < list.size(); i++) {
//            hssfRow = sheet.createRow((int) i + 1);
//            SalaryMessage salaryMessage = list.get(i);
//
//            // 创建单元格，并设置值
//            HSSFCell cell = hssfRow.createCell(0);
//            cell.setCellValue(salaryMessage.getId());
//            cell.setCellStyle(cellStyle);
//
//            cell = hssfRow.createCell(1);
//            cell.setCellValue(salaryMessage.getName());
//            cell.setCellStyle(cellStyle);
//
//            cell = hssfRow.createCell(2);
//            cell.setCellValue(salaryMessage.getBasicSalary());
//            cell.setCellStyle(cellStyle);
//
//            cell = hssfRow.createCell(3);
//            cell.setCellValue(salaryMessage.getSalary());
//            cell.setCellStyle(cellStyle);
//
//            cell = hssfRow.createCell(4);
//            cell.setCellValue(salaryMessage.getDatetime());
//            cell.setCellStyle(cellStyle);
//
//            cell = hssfRow.createCell(5);
//            cell.setCellValue(salaryMessage.getProfitBonus());
//            cell.setCellStyle(cellStyle);
//
//        }
//
//        // 保存Excel文件
//        try {
//            OutputStream outputStream = new FileOutputStream(path);
//            workbook.write(outputStream);
//            outputStream.close();
//        } catch (Exception e) {
//            return "error";
//        }
        return "success";
    }

    @Override
    public List<SalaryMessage> findDatetime(Date startTime, Date endTime) {
        return salaryMessageDao.findDatetime(startTime,endTime);
    }

}
